Next: Sexp Types, Previous: Setting Up the Buffer, Up: Top [Contents][Index]
This is the general syntax of a type specification:
name ::= (name [keyword argument]... args)
| name
Where, name is a widget name, keyword is the name of a property, argument is the value of the property, and args are interpreted in a widget specific way.
The following keyword arguments apply to all widgets:
:valueThe initial value for widgets of this type.
:formatThis string will be inserted in the buffer when you create a widget. The following ‘%’ escapes are available:
The text inside will be marked as a button.
By default, the text will be shown in
widget-button-face, and surrounded by
brackets.
String to prefix buttons.
String to suffix buttons.
The text inside will be displayed with the face
specified by :sample-face.
This will be replaced with the buffer representation of the widget’s value. What this is depends on the widget type.
Warning: In an
editable-field widget, the
‘%v’ escape must be preceded by
some other text in the format string (if specified).
Insert the string specified by :doc
here.
Like ‘%d’, with the following
modifications: If the documentation string is more than
one line, it will add a button which will toggle between
showing only the first line, and showing the full text.
Furthermore, if there is no :doc property in
the widget, it will instead examine the
:documentation-property property. If it is a
lambda expression, it will be called with the
widget’s value as an argument, and the result will
be used as the documentation text.
Insert the string specified by :tag here,
or the princ representation of the value if
there is no tag.
Insert a literal ‘%’.
:button-faceFace used to highlight text inside %[ %] in the format.
:button-prefix:button-suffixText around %[ %] in the format.
These can be
No text is inserted.
The string is inserted literally.
The value of the symbol is expanded according to this table.
:docThe string inserted by the ‘%d’ escape in the format string.
:tagThe string inserted by the ‘%t’ escape in the format string.
:tag-glyphName of image to use instead of the string specified by
:tag on Emacsen that supports it.
:help-echoSpecifies how to display a message whenever you move to
the widget with either widget-forward or
widget-backward or move the mouse over it (using
the standard help-echo mechanism). The argument
is either a string to display, a function of one argument,
the widget, which should return a string to display, or a
form that evaluates to such a string.
:follow-linkSpecifies how to interpret a mouse-1 click on the widget. See Defining Clickable Text in the Emacs Lisp Reference Manual.
:indentAn integer indicating the absolute number of spaces to indent children of this widget.
:offsetAn integer indicating how many extra spaces to add to the widget’s grandchildren compared to this widget.
:extra-offsetAn integer indicating how many extra spaces to add to the widget’s children compared to this widget.
:notifyA function called each time the widget or a nested widget is changed. The function is called with two or three arguments. The first argument is the widget itself, the second argument is the widget that was changed, and the third argument is the event leading to the change, if any.
:menu-tagTag used in the menu when the widget is used as an option
in a menu-choice widget.
:menu-tag-getFunction used for finding the tag when the widget is used
as an option in a menu-choice widget. By
default, the tag used will be either the
:menu-tag or :tag property if
present, or the princ representation of the
:value property if not.
:matchShould be a function called with two arguments, the widget
and a value, and returning non-nil if the widget
can represent the specified value.
:validateA function which takes a widget as an argument, and
returns nil if the widget’s current value
is valid for the widget. Otherwise it should return the
widget containing the invalid data, and set that
widget’s :error property to a string
explaining the error.
The following predefined function can be used:
All the :children of widget
must be valid.
:tab-orderSpecify the order in which widgets are traversed with
widget-forward or widget-backward.
This is only partially implemented.
-1 are
ignored.nil, whichever
comes first.nil:parentThe parent of a nested widget (e.g., a
menu-choice item or an element of a
editable-list widget).
:sibling-argsThis keyword is only used for members of a
radio-button-choice or checklist.
The value should be a list of extra keyword arguments, which
will be used when creating the radio-button or
checkbox associated with this item.
Directory where glyphs are found. Widget will look here for a file with the same name as specified for the image, with either a .xpm (if supported) or .xbm extension.
If non-nil, allow glyphs to appear on
displays where they are supported.
| • link: | ||
| • url-link: | ||
| • info-link: | ||
| • push-button: | ||
| • editable-field: | ||
| • text: | ||
| • menu-choice: | ||
| • radio-button-choice: | ||
| • item: | ||
| • choice-item: | ||
| • toggle: | ||
| • checkbox: | ||
| • checklist: | ||
| • editable-list: | ||
| • group: |
Next: Sexp Types, Previous: Setting Up the Buffer, Up: Top [Contents][Index]